﻿<h3>窗口加载后回调示例</h3>

<p>在实战应用中，有些脚本比如画图类，必须窗体显示后，由具体高度或者宽度后才能正确工作，此时需要先显示此窗体，然后再调用其方法，本示例中下面数字是通过窗体加载并且显示后，由回调方法触发后，延时 2秒 后显示当前时间</p>

<p>@_text</p>

@code {
    [Parameter]
    public Action<Func<Task>>? ShownTodo { get; set; }

    private string? _text;

    protected override void OnAfterRender(bool firstRender)
    {
        base.OnAfterRender(firstRender);

        if (firstRender)
        {
            // 首次加载时回调 ShowTodo 方法
            if (ShownTodo != null)
            {
                ShownTodo(DoJob);
            }
        }
    }

    private async Task DoJob()
    {
        _text = "回调成功，开始延时 2 秒";
        await InvokeAsync(StateHasChanged);

        await Task.Delay(2000);
        _text = $"当前时间: {DateTime.Now}";
        await InvokeAsync(StateHasChanged);
    }
}
